﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;

namespace Manager
{
	// Token: 0x02000345 RID: 837
	public class Info : global::Singleton<Info>
	{
		// Token: 0x06001494 RID: 5268 RVA: 0x000A16C8 File Offset: 0x0009F8C8
		public virtual void LoadPersonalityBaseData()
		{
			this.personalityBase.Clear();
			List<string> assetBundleNameListFromPath = global::CommonLib.GetAssetBundleNameListFromPath("info/", true);
			assetBundleNameListFromPath.Sort();
			for (int i = 0; i < assetBundleNameListFromPath.Count; i++)
			{
				string text = assetBundleNameListFromPath[i];
				string assetName = "Base_" + Path.GetFileNameWithoutExtension(text);
				global::AssetBundleLoadAssetOperation assetBundleLoadAssetOperation = global::KK_Lib.LoadFile<global::ExcelData>(text, assetName, string.Empty);
				if (assetBundleLoadAssetOperation != null)
				{
					global::ExcelData asset = assetBundleLoadAssetOperation.GetAsset<global::ExcelData>();
					if (!(null == asset))
					{
						Dictionary<string, int> dictionary = new Dictionary<string, int>
						{
							{
								"低い",
								0
							},
							{
								"高い",
								1
							}
						};
						Dictionary<string, global::CharFileInfoParameterFemale.State> dictionary2 = new Dictionary<string, global::CharFileInfoParameterFemale.State>
						{
							{
								"好意",
								global::CharFileInfoParameterFemale.State.Favor
							},
							{
								"淫乱",
								global::CharFileInfoParameterFemale.State.Lewdness
							},
							{
								"嫌悪",
								global::CharFileInfoParameterFemale.State.Aversion
							},
							{
								"隷属",
								global::CharFileInfoParameterFemale.State.Slavery
							}
						};
						Dictionary<string, int> dictionary3 = new Dictionary<string, int>
						{
							{
								"風呂",
								2
							},
							{
								"疲れ",
								1
							},
							{
								"トイレ",
								0
							},
							{
								"欲求",
								3
							}
						};
						int count = asset.list.Count;
						for (int j = 2; j < count; j++)
						{
							global::ExcelData.Param param = asset.list[j];
							int num = 0;
							Info.PersonalityBase personalityBase = new Info.PersonalityBase();
							personalityBase.name = param.list[num++];
							personalityBase.no = int.Parse(param.list[num++]);
							personalityBase.active = dictionary[param.list[num++]];
							personalityBase.favor = int.Parse(param.list[num++]);
							personalityBase.lewdness = int.Parse(param.list[num++]);
							personalityBase.aversion = int.Parse(param.list[num++]);
							personalityBase.slavery = int.Parse(param.list[num++]);
							personalityBase.broken = int.Parse(param.list[num++]);
							personalityBase.resistH = int.Parse(param.list[num++]);
							personalityBase.resistPain = int.Parse(param.list[num++]);
							personalityBase.resistAnal = int.Parse(param.list[num++]);
							personalityBase.dirty = int.Parse(param.list[num++]);
							personalityBase.tiredness = int.Parse(param.list[num++]);
							personalityBase.toilette = int.Parse(param.list[num++]);
							personalityBase.libido = int.Parse(param.list[num++]);
							personalityBase.alertness = Mathf.RoundToInt(float.Parse(param.list[num++]) * 100f);
							personalityBase.priority[0] = global::CharFileInfoParameterFemale.State.Broken;
							for (int k = 0; k < 4; k++)
							{
								personalityBase.priority[k + 1] = dictionary2[param.list[num++]];
							}
							for (int l = 4; l > 0; l--)
							{
								int num2 = dictionary3[param.list[num++]];
								personalityBase.eventPriority[num2] = l;
							}
							personalityBase.assetbundle = param.list[num++];
							personalityBase.file = param.list[num++];
							this.personalityBase.Add(personalityBase.no, personalityBase);
						}
						global::AssetBundleManager.UnloadAssetBundle(text, true, null);
					}
				}
			}
		}

		// Token: 0x06001495 RID: 5269 RVA: 0x000A1B08 File Offset: 0x0009FD08
		public virtual void LoadPersonalityCorrectData()
		{
			this.personalityCorrect.Clear();
			List<string> assetBundleNameListFromPath = global::CommonLib.GetAssetBundleNameListFromPath("info/", true);
			assetBundleNameListFromPath.Sort();
			for (int i = 0; i < assetBundleNameListFromPath.Count; i++)
			{
				string text = assetBundleNameListFromPath[i];
				string assetName = "Correct_" + Path.GetFileNameWithoutExtension(text);
				global::AssetBundleLoadAssetOperation assetBundleLoadAssetOperation = global::KK_Lib.LoadFile<global::ExcelData>(text, assetName, string.Empty);
				if (assetBundleLoadAssetOperation != null)
				{
					global::ExcelData asset = assetBundleLoadAssetOperation.GetAsset<global::ExcelData>();
					if (!(null == asset))
					{
						int count = asset.list.Count;
						for (int j = 1; j < count; j++)
						{
							global::ExcelData.Param param = asset.list[j];
							int num = 0;
							Info.PersonalityCorrect personalityCorrect = new Info.PersonalityCorrect();
							personalityCorrect.name = param.list[num++];
							personalityCorrect.no = int.Parse(param.list[num++]);
							personalityCorrect.dirty = int.Parse(param.list[num++]);
							personalityCorrect.tiredness = int.Parse(param.list[num++]);
							personalityCorrect.toilette = int.Parse(param.list[num++]);
							personalityCorrect.libido = int.Parse(param.list[num++]);
							personalityCorrect.alertness = Mathf.RoundToInt(float.Parse(param.list[num++]) * 100f);
							this.personalityCorrect.Add(personalityCorrect.no, personalityCorrect);
						}
						global::AssetBundleManager.UnloadAssetBundle(text, true, null);
					}
				}
			}
		}

		// Token: 0x06001496 RID: 5270 RVA: 0x000A1CD4 File Offset: 0x0009FED4
		public virtual void LoadImpressionInfoData()
		{
			string assetBundleName = "info/00.unity3d";
			global::AssetBundleLoadAssetOperation assetBundleLoadAssetOperation = global::KK_Lib.LoadFile<global::ExcelData>(assetBundleName, "Impression", string.Empty);
			if (assetBundleLoadAssetOperation == null)
			{
				return;
			}
			global::ExcelData asset = assetBundleLoadAssetOperation.GetAsset<global::ExcelData>();
			if (null == asset)
			{
				return;
			}
			int count = asset.list.Count;
			for (int i = 1; i < count; i++)
			{
				List<string> list = asset.list[i].list;
				int num = 0;
				Info.ImpressionInfo impressionInfo = new Info.ImpressionInfo();
				impressionInfo.name = list[num++];
				impressionInfo.no = int.Parse(list[num++]);
				impressionInfo.state.favor = int.Parse(list[num++]);
				impressionInfo.state.lewdness = int.Parse(list[num++]);
				impressionInfo.state.aversion = int.Parse(list[num++]);
				impressionInfo.state.slavery = int.Parse(list[num++]);
				impressionInfo.state.broken = int.Parse(list[num++]);
				this.impressionInfo.Add(impressionInfo.no, impressionInfo);
			}
			global::AssetBundleManager.UnloadAssetBundle(assetBundleName, true, null);
		}

		// Token: 0x06001497 RID: 5271 RVA: 0x000A1E3C File Offset: 0x000A003C
		public virtual void LoadCharacteristicInfoData()
		{
			string assetBundleName = "info/00.unity3d";
			global::AssetBundleLoadAssetOperation assetBundleLoadAssetOperation = global::KK_Lib.LoadFile<global::ExcelData>(assetBundleName, "Characteristic", string.Empty);
			if (assetBundleLoadAssetOperation == null)
			{
				return;
			}
			global::ExcelData asset = assetBundleLoadAssetOperation.GetAsset<global::ExcelData>();
			if (null == asset)
			{
				return;
			}
			int count = asset.list.Count;
			for (int i = 1; i < count; i++)
			{
				List<string> list = asset.list[i].list;
				int num = 0;
				Info.CharacteristicInfo characteristicInfo = new Info.CharacteristicInfo();
				characteristicInfo.name = list[num++];
				characteristicInfo.no = int.Parse(list[num++]);
				characteristicInfo.dirty = int.Parse(list[num++]);
				characteristicInfo.tiredness = int.Parse(list[num++]);
				characteristicInfo.toilette = int.Parse(list[num++]);
				characteristicInfo.libido = int.Parse(list[num++]);
				characteristicInfo.broken = int.Parse(list[num++]);
				this.characteristicInfo.Add(characteristicInfo.no, characteristicInfo);
			}
			global::AssetBundleManager.UnloadAssetBundle(assetBundleName, true, null);
		}

		// Token: 0x06001498 RID: 5272 RVA: 0x000A1F88 File Offset: 0x000A0188
		public virtual void LoadAchievementInfoData()
		{
            //global::AssetBundleLoadAssetOperation assetBundleLoadAssetOperation = global::KK_Lib.LoadFile<global::AchievementInfoData>(global::AchievementScene.AssetBundleName, "achievement", string.Empty);
            //if (assetBundleLoadAssetOperation == null)
            //{
            //    return;
            //}
            //global::AchievementInfoData asset = assetBundleLoadAssetOperation.GetAsset<global::AchievementInfoData>();
            //if (null == asset)
            //{
            //    return;
            //}
            //this.achievementInfo = asset.param.ToDictionary((global::AchievementInfoData.Param i) => i.No, (global::AchievementInfoData.Param i) => new Info.AchievementInfo
            //{
            //    no = i.No,
            //    name = i.Name,
            //    title = i.Title,
            //    text = i.Text
            //});
            //global::AssetBundleManager.UnloadAssetBundle(global::AchievementScene.AssetBundleName, true, null);
		}

		// Token: 0x06001499 RID: 5273 RVA: 0x000A201C File Offset: 0x000A021C
		public virtual global::CharFileInfoParameterFemale.State CheckState(global::CharFileInfoParameterFemale _param, int _personality, bool _isCalc = true, bool _isConcierge = false)
		{
			if (_param == null)
			{
				return global::CharFileInfoParameterFemale.State.Blank;
			}
			if (_param.nowState == global::CharFileInfoParameterFemale.State.Broken && _param.broken != 0)
			{
				return global::CharFileInfoParameterFemale.State.Broken;
			}
			if (_param.broken >= 100)
			{
				//Game.SetAchievementAchieve(11);
				//Game.SetAchievementAchieve(12);
				return global::CharFileInfoParameterFemale.State.Broken;
			}
			Info.PersonalityBase personalityBase;
			if (!this.personalityBase.TryGetValue(_personality, out personalityBase))
			{
				return global::CharFileInfoParameterFemale.State.Blank;
			}
			int[] array = new int[]
			{
				_param.favor,
				_param.lewdness,
				_param.aversion,
				_param.slavery
			};
			int num = 0;
			for (int i = 1; i < 4; i++)
			{
				if (array[i] > array[num])
				{
					num = i;
				}
				else if (array[i] == array[num] && Array.IndexOf<global::CharFileInfoParameterFemale.State>(personalityBase.priority, (global::CharFileInfoParameterFemale.State)i) < Array.IndexOf<global::CharFileInfoParameterFemale.State>(personalityBase.priority, (global::CharFileInfoParameterFemale.State)num))
				{
					num = i;
				}
			}
			if (!_isConcierge && array[num] >= 100)
			{
                //Game.SetAchievementAchieve(7 + num);
                //Game.SetAchievementAchieve(12);
			}
			return (global::CharFileInfoParameterFemale.State)((array[num] < ((!_isCalc) ? 50 : 20)) ? 5 : num);
		}

		// Token: 0x0600149A RID: 5274 RVA: 0x000A2138 File Offset: 0x000A0338
		public virtual global::CharFileInfoParameterFemale.State CheckState(global::CharFemale _female, bool _isCalc = true)
		{
			if (_female == null)
			{
				return global::CharFileInfoParameterFemale.State.Blank;
			}
			if (_female.femaleCustomInfo.isConcierge)
			{
				return global::CharFileInfoParameterFemale.State.Favor;
			}
			return this.CheckState(_female.femaleParameterInfo, _female.femaleCustomInfo.personality, _isCalc, false);
		}

		// Token: 0x0600149B RID: 5275 RVA: 0x000A2174 File Offset: 0x000A0374
		public virtual void FluctuationState(global::CharFileInfoParameterFemale _param, int _personality, Info.StateFluctuationInfo _state)
		{
			if (_param == null || _state == null)
			{
				return;
			}
			if (_param.lockNowState)
			{
				return;
			}
			int[] array = new int[]
			{
				_param.favor,
				_param.lewdness,
				_param.aversion,
				_param.slavery,
				_param.broken
			};
			global::CharFileInfoParameterFemale.State nowState = _param.nowState;
			_param.favor = Mathf.Clamp(_param.favor + _state.favor, 0, 100);
			_param.lewdness = Mathf.Clamp(_param.lewdness + _state.lewdness, 0, 100);
			_param.aversion = Mathf.Clamp(_param.aversion + _state.aversion, 0, 100);
			_param.slavery = Mathf.Clamp(_param.slavery + _state.slavery, 0, 100);
			if (!_param.lockBroken)
			{
				_param.broken = Mathf.Clamp(_param.broken + _state.broken, 0, 100);
			}
			_param.nowState = this.CheckState(_param, _personality, true, false);
			int[] array2 = new int[]
			{
				_param.favor,
				_param.lewdness,
				_param.aversion,
				_param.slavery,
				_param.broken
			};
			global::CharFileInfoParameterFemale.State calcState = _param.calcState;
			if (calcState != global::CharFileInfoParameterFemale.State.Broken)
			{
				if (calcState != global::CharFileInfoParameterFemale.State.Blank)
				{
					if (_param.calcState != global::CharFileInfoParameterFemale.State.Blank && array2[(int)_param.calcState] < 40)
					{
						_param.calcState = global::CharFileInfoParameterFemale.State.Blank;
					}
				}
			}
			else if (_param.broken <= 0)
			{
				_param.calcState = global::CharFileInfoParameterFemale.State.Blank;
			}
			if (_param.nowState != global::CharFileInfoParameterFemale.State.Blank && array[(int)_param.nowState] < 100 && array2[(int)_param.nowState] >= 100)
			{
				_param.calcState = _param.nowState;
			}
			if (nowState != _param.nowState)
			{
				_param.genericFlag = true;
				_param.genericBefore = true;
			}
			if (nowState == _param.nowState)
			{
				switch (_param.nowState)
				{
				case global::CharFileInfoParameterFemale.State.Favor:
					if (this.CheckStateValue(array[(int)nowState], _param.favor))
					{
						_param.genericBefore = true;
					}
					if (array[(int)nowState] <= 79 && _param.favor >= 80)
					{
						_param.genericFlag = true;
					}
					break;
				case global::CharFileInfoParameterFemale.State.Lewdness:
					if (this.CheckStateValue(array[(int)nowState], _param.lewdness))
					{
						_param.genericBefore = true;
					}
					if (array[(int)nowState] <= 79 && _param.lewdness >= 80)
					{
						_param.genericFlag = true;
					}
					break;
				case global::CharFileInfoParameterFemale.State.Aversion:
					if (this.CheckStateValue(array[(int)nowState], _param.aversion))
					{
						_param.genericBefore = true;
					}
					if (array[(int)nowState] <= 79 && _param.aversion >= 80)
					{
						_param.genericFlag = true;
					}
					break;
				case global::CharFileInfoParameterFemale.State.Slavery:
					if (this.CheckStateValue(array[(int)nowState], _param.slavery))
					{
						_param.genericBefore = true;
					}
					if (array[(int)nowState] <= 79 && _param.slavery >= 80)
					{
						_param.genericFlag = true;
					}
					break;
				}
			}
		}

		// Token: 0x0600149C RID: 5276 RVA: 0x000A2480 File Offset: 0x000A0680
		public virtual void FluctuationState(global::CharFemale _female, Info.StateFluctuationInfo _state)
		{
			if (_female == null || _state == null)
			{
				return;
			}
			if (_female.femaleCustomInfo.isConcierge)
			{
				_state.favor = (_state.lewdness = (_state.aversion = (_state.slavery = (_state.broken = 0))));
			}
			this.FluctuationState(_female.femaleParameterInfo, _female.femaleCustomInfo.personality, _state);
		}

		// Token: 0x0600149D RID: 5277 RVA: 0x000A24F4 File Offset: 0x000A06F4
		public virtual void FluctuationAlertness(global::CharFileInfoParameterFemale _param, int _personality, int _value)
		{
			Info.PersonalityBase personalityBase = this.personalityBase[_personality];
			Info.PersonalityCorrect personalityCorrect = this.personalityCorrect[_personality];
			_param.alertness = Mathf.Clamp(_param.alertness + _value, personalityBase.alertness, personalityCorrect.alertness);
		}

		// Token: 0x0600149E RID: 5278 RVA: 0x000A253C File Offset: 0x000A073C
		public virtual bool CheckStateValue(int _old, int _new)
		{
			int[] array = new int[]
			{
				_old,
				_new
			};
			int[] array2 = new int[]
			{
				-1,
				-1
			};
			for (int i = 0; i < 2; i++)
			{
				if (global::MathfEx.RangeEqualOn(0, array[i], 19))
				{
					array2[i] = 0;
				}
				else if (global::MathfEx.RangeEqualOn(20, array[i], 49))
				{
					array2[i] = 1;
				}
				else if (global::MathfEx.RangeEqualOn(50, array[i], 79))
				{
					array2[i] = 2;
				}
				else if (global::MathfEx.RangeEqualOn(80, array[i], 100))
				{
					array2[i] = 3;
				}
			}
			return array2[0] != array2[1];
		}

		// Token: 0x0600149F RID: 5279 RVA: 0x000A25E8 File Offset: 0x000A07E8
		public virtual void InitState(global::CharFileInfoParameterFemale _param, int _personality, bool _isForce = false, bool _isConcierge = false)
		{
			if (_param == null)
			{
				return;
			}
			if (!_isForce && !_param.InitParameter)
			{
				return;
			}
			Info.PersonalityBase personalityBase = _isConcierge ? new Info.PersonalityBase
			{
				favor = 100
			} : this.personalityBase[_personality];
			_param.favor = personalityBase.favor;
			_param.lewdness = personalityBase.lewdness;
			_param.aversion = personalityBase.aversion;
			_param.slavery = personalityBase.slavery;
			_param.broken = personalityBase.broken;
			_param.lockNowState = false;
			_param.lockBroken = false;
			_param.dirty = personalityBase.dirty;
			_param.tiredness = personalityBase.tiredness;
			_param.toilette = personalityBase.toilette;
			_param.libido = personalityBase.libido;
			_param.alertness = personalityBase.alertness;
			_param.escapeFlag = 0;
			_param.escapeExperienced = false;
			_param.firstHFlag = false;
			for (int i = 0; i < 4; i++)
			{
				for (int j = 0; j < 3; j++)
				{
					_param.genericVoice[i][j] = false;
				}
			}
			_param.genericFlag = false;
			_param.genericBefore = true;
			_param.hCount = 0;
			_param.map.Clear();
			_param.resistH = ((!_isConcierge) ? personalityBase.resistH : 100);
			_param.resistPain = ((!_isConcierge) ? personalityBase.resistPain : 100);
			_param.resistAnal = ((!_isConcierge) ? personalityBase.resistAnal : 100);
			_param.usedItem = 0;
			Info.ImpressionInfo impressionInfo = null;
			if (this.impressionInfo.TryGetValue(_param.impression, out impressionInfo))
			{
				_param.favor = Mathf.Clamp(_param.favor + impressionInfo.state.favor, 0, 100);
				_param.lewdness = Mathf.Clamp(_param.lewdness + impressionInfo.state.lewdness, 0, 100);
				_param.aversion = Mathf.Clamp(_param.aversion + impressionInfo.state.aversion, 0, 100);
				_param.slavery = Mathf.Clamp(_param.slavery + impressionInfo.state.slavery, 0, 100);
				_param.broken = Mathf.Clamp(_param.broken + impressionInfo.state.broken, 0, 100);
			}
			_param.nowState = global::CharFileInfoParameterFemale.State.Blank;
			_param.nowState = this.CheckState(_param, _personality, true, _isConcierge);
			_param.calcState = global::CharFileInfoParameterFemale.State.Blank;
			switch (_param.nowState)
			{
			case global::CharFileInfoParameterFemale.State.Favor:
				_param.calcState = ((_param.favor < 100) ? global::CharFileInfoParameterFemale.State.Blank : global::CharFileInfoParameterFemale.State.Favor);
				break;
			case global::CharFileInfoParameterFemale.State.Lewdness:
				_param.calcState = ((_param.lewdness < 100) ? global::CharFileInfoParameterFemale.State.Blank : global::CharFileInfoParameterFemale.State.Lewdness);
				break;
			case global::CharFileInfoParameterFemale.State.Aversion:
				_param.calcState = ((_param.aversion < 100) ? global::CharFileInfoParameterFemale.State.Blank : global::CharFileInfoParameterFemale.State.Aversion);
				break;
			case global::CharFileInfoParameterFemale.State.Slavery:
				_param.calcState = ((_param.slavery < 100) ? global::CharFileInfoParameterFemale.State.Blank : global::CharFileInfoParameterFemale.State.Slavery);
				break;
			case global::CharFileInfoParameterFemale.State.Broken:
				_param.calcState = ((_param.broken < 100) ? global::CharFileInfoParameterFemale.State.Blank : global::CharFileInfoParameterFemale.State.Broken);
				break;
			}
			_param.InitParameter = false;
		}

		// Token: 0x060014A0 RID: 5280 RVA: 0x000A291C File Offset: 0x000A0B1C
		public virtual void InitState(global::CharFemale _female, bool _isForce = false)
		{
			if (_female == null)
			{
				return;
			}
			this.InitState(_female.femaleParameterInfo, _female.femaleCustomInfo.personality, _isForce, _female.femaleCustomInfo.isConcierge);
		}

		// Token: 0x060014A1 RID: 5281 RVA: 0x000A2950 File Offset: 0x000A0B50
		public virtual void GetStateAndStage(ref global::CharFileInfoParameterFemale.State _state, ref int _stage, global::CharFileInfoParameterFemale _param, int _personality)
		{
			if (_param == null)
			{
				return;
			}
			_state = this.CheckState(_param, _personality, false, false);
			int n = 0;
			switch (_state)
			{
			case global::CharFileInfoParameterFemale.State.Favor:
				n = _param.favor;
				break;
			case global::CharFileInfoParameterFemale.State.Lewdness:
				n = _param.lewdness;
				break;
			case global::CharFileInfoParameterFemale.State.Aversion:
				n = _param.aversion;
				break;
			case global::CharFileInfoParameterFemale.State.Slavery:
				n = _param.slavery;
				break;
			case global::CharFileInfoParameterFemale.State.Broken:
			case global::CharFileInfoParameterFemale.State.Blank:
				_stage = 0;
				return;
			}
			_stage = ((!global::MathfEx.RangeEqualOn(80, n, 100)) ? 0 : 1);
		}

		// Token: 0x060014A2 RID: 5282 RVA: 0x000A29E8 File Offset: 0x000A0BE8
		public virtual void GetStateAndStage(ref global::CharFileInfoParameterFemale.State _state, ref int _stage, global::CharFemale _female)
		{
			if (_female == null)
			{
				return;
			}
			_state = this.CheckState(_female, false);
			int n = 0;
			switch (_state)
			{
			case global::CharFileInfoParameterFemale.State.Favor:
				n = _female.femaleParameterInfo.favor;
				break;
			case global::CharFileInfoParameterFemale.State.Lewdness:
				n = _female.femaleParameterInfo.lewdness;
				break;
			case global::CharFileInfoParameterFemale.State.Aversion:
				n = _female.femaleParameterInfo.aversion;
				break;
			case global::CharFileInfoParameterFemale.State.Slavery:
				n = _female.femaleParameterInfo.slavery;
				break;
			case global::CharFileInfoParameterFemale.State.Broken:
			case global::CharFileInfoParameterFemale.State.Blank:
				_stage = 0;
				return;
			}
			_stage = ((!global::MathfEx.RangeEqualOn(80, n, 100)) ? 0 : 1);
		}

		// Token: 0x060014A3 RID: 5283 RVA: 0x000A2A94 File Offset: 0x000A0C94
		protected override void Awake()
		{
			if (!base.CheckInstance())
			{
				return;
			}
			UnityEngine.Object.DontDestroyOnLoad(base.gameObject);
			this.LoadPersonalityBaseData();
			this.LoadPersonalityCorrectData();
			this.LoadImpressionInfoData();
			this.LoadCharacteristicInfoData();
			this.LoadAchievementInfoData();
		}

		// Token: 0x04001A6C RID: 6764
		public Dictionary<string, Shader> dicShader;

		// Token: 0x04001A6D RID: 6765
		public Dictionary<int, Info.PersonalityBase> personalityBase = new Dictionary<int, Info.PersonalityBase>();

		// Token: 0x04001A6E RID: 6766
		public Dictionary<int, Info.PersonalityCorrect> personalityCorrect = new Dictionary<int, Info.PersonalityCorrect>();

		// Token: 0x04001A6F RID: 6767
		public Dictionary<int, Info.ImpressionInfo> impressionInfo = new Dictionary<int, Info.ImpressionInfo>();

		// Token: 0x04001A70 RID: 6768
		public Dictionary<int, Info.CharacteristicInfo> characteristicInfo = new Dictionary<int, Info.CharacteristicInfo>();

		// Token: 0x04001A71 RID: 6769
		public Dictionary<int, Info.AchievementInfo> achievementInfo = new Dictionary<int, Info.AchievementInfo>();

		// Token: 0x02000346 RID: 838
		[Serializable]
		public class PersonalityBase
		{
			// Token: 0x04001A74 RID: 6772
			public string name = string.Empty;

			// Token: 0x04001A75 RID: 6773
			public int no;

			// Token: 0x04001A76 RID: 6774
			public int active;

			// Token: 0x04001A77 RID: 6775
			public int favor;

			// Token: 0x04001A78 RID: 6776
			public int lewdness;

			// Token: 0x04001A79 RID: 6777
			public int aversion;

			// Token: 0x04001A7A RID: 6778
			public int slavery;

			// Token: 0x04001A7B RID: 6779
			public int broken;

			// Token: 0x04001A7C RID: 6780
			public int resistH;

			// Token: 0x04001A7D RID: 6781
			public int resistPain;

			// Token: 0x04001A7E RID: 6782
			public int resistAnal;

			// Token: 0x04001A7F RID: 6783
			public int dirty;

			// Token: 0x04001A80 RID: 6784
			public int tiredness;

			// Token: 0x04001A81 RID: 6785
			public int toilette;

			// Token: 0x04001A82 RID: 6786
			public int libido;

			// Token: 0x04001A83 RID: 6787
			public int alertness;

			// Token: 0x04001A84 RID: 6788
			public global::CharFileInfoParameterFemale.State[] priority = new global::CharFileInfoParameterFemale.State[5];

			// Token: 0x04001A85 RID: 6789
			public int[] eventPriority = new int[4];

			// Token: 0x04001A86 RID: 6790
			public string assetbundle = string.Empty;

			// Token: 0x04001A87 RID: 6791
			public string file = string.Empty;
		}

		// Token: 0x02000347 RID: 839
		[Serializable]
		public class PersonalityCorrect
		{
			// Token: 0x04001A88 RID: 6792
			public string name = string.Empty;

			// Token: 0x04001A89 RID: 6793
			public int no;

			// Token: 0x04001A8A RID: 6794
			public int dirty;

			// Token: 0x04001A8B RID: 6795
			public int tiredness;

			// Token: 0x04001A8C RID: 6796
			public int toilette;

			// Token: 0x04001A8D RID: 6797
			public int libido;

			// Token: 0x04001A8E RID: 6798
			public int alertness;
		}

		// Token: 0x02000348 RID: 840
		[Serializable]
		public class StateFluctuationInfo
		{
			// Token: 0x04001A8F RID: 6799
			public int favor;

			// Token: 0x04001A90 RID: 6800
			public int lewdness;

			// Token: 0x04001A91 RID: 6801
			public int aversion;

			// Token: 0x04001A92 RID: 6802
			public int slavery;

			// Token: 0x04001A93 RID: 6803
			public int broken;
		}

		// Token: 0x02000349 RID: 841
		[Serializable]
		public class ImpressionInfo
		{
			// Token: 0x04001A94 RID: 6804
			public string name = string.Empty;

			// Token: 0x04001A95 RID: 6805
			public int no;

			// Token: 0x04001A96 RID: 6806
			public Info.StateFluctuationInfo state = new Info.StateFluctuationInfo();
		}

		// Token: 0x0200034A RID: 842
		[Serializable]
		public class CharacteristicInfo
		{
			// Token: 0x04001A97 RID: 6807
			public string name = string.Empty;

			// Token: 0x04001A98 RID: 6808
			public int no;

			// Token: 0x04001A99 RID: 6809
			public int dirty;

			// Token: 0x04001A9A RID: 6810
			public int tiredness;

			// Token: 0x04001A9B RID: 6811
			public int toilette;

			// Token: 0x04001A9C RID: 6812
			public int libido;

			// Token: 0x04001A9D RID: 6813
			public int broken;
		}

		// Token: 0x0200034B RID: 843
		[Serializable]
		public class AchievementInfo
		{
			// Token: 0x04001A9E RID: 6814
			public int no = -1;

			// Token: 0x04001A9F RID: 6815
			public string name = string.Empty;

			// Token: 0x04001AA0 RID: 6816
			public string title = string.Empty;

			// Token: 0x04001AA1 RID: 6817
			public string text = string.Empty;
		}

		// Token: 0x0200034C RID: 844
		private class PrioritySort : IComparable
		{
			// Token: 0x060014AD RID: 5293 RVA: 0x000A2BF4 File Offset: 0x000A0DF4
			public int CompareTo(object obj)
			{
				if (obj == null)
				{
					throw new ArgumentException();
				}
				if (base.GetType() != obj.GetType())
				{
					throw new ArgumentException();
				}
				if (this.value == ((Info.PrioritySort)obj).value)
				{
					return this.priority.CompareTo(((Info.PrioritySort)obj).priority);
				}
				return this.value.CompareTo(((Info.PrioritySort)obj).value);
			}

			// Token: 0x04001AA2 RID: 6818
			public int priority;

			// Token: 0x04001AA3 RID: 6819
			public int value;

			// Token: 0x04001AA4 RID: 6820
			public global::CharFileInfoParameterFemale.State state = global::CharFileInfoParameterFemale.State.Blank;
		}
	}
}
